/**
 *	\file AKCPPTTTPlayer.h
 *  
 *  \section desc_sec Description
 *  Description
 *  
 *  \if copyright
 *  	Copyright 2008 Ben Chen. All rights reserved.
 *  \endif
 *  
 *  \section hist_sec Change History:
 *  	-	1/22/08		BC		Created this file
 *  
 *  <hr>
 *  \addtogroup AKCPP
 *  @{
 */

#ifndef _AKCPPTTTPLAYER_H
#define _AKCPPTTTPLAYER_H

#include "AbstractClasses.h"

#define NUM_CELLS 9

class AKCPPTTTPlayer : public AKCPPPlayer
{
	typedef AKCPPPlayer PARENT;
public:
	AKCPPTTTPlayer(AKSideIndex aSide, unsigned int aNumOfSides);
	virtual ~AKCPPTTTPlayer();
	
	// State
	virtual void backToInitialState();
	virtual bool performMove(const AKMove newMove);
	virtual bool canUndo();
	virtual bool undo();
	
	// Player
	virtual const AKMove getBestMove();
	virtual const AKMove getAlternativeMove();
	
private:
	AKSideIndex side;
	AKPiece cells[NUM_CELLS];
	AKMove lastMove;
};

#endif // _AKCPPTTTPLAYER_H

/** @} */

